// fn 代表一个函数，里面可能会频繁发生回调或ajax请求
//deley 表示隔多少秒才触发

// 防抖
export function debounce(fn, delay = 200) {
  let timer = null;
  return function () {
    if (timer) clearTimeout(timer);
    timer = setTimeout(() => {
      fn.apply(this, arguments);
      timer = null;
    }, delay);
  }
}
//delay 表示等待时间
// fn 代表可能会频繁发生回调或ajax请求的函数

// 节流
export function throttle(fn, delay = 100) {
  //首先设定一个变量，在没有执行我们的定时器时为null
  let timer = null;
  return function () {
    //当我们发现这个定时器存在时，则表示定时器已经在运行中，需要返回
    if (timer) return;
    timer = setTimeout(() => {
      fn.apply(this, arguments);
      timer = null;
    }, delay)
  }
}







// // 防抖
// export default function debounce(fn, time) {
//     time = time || 200
//     // 定时器
//     let timer = null
//     return function(...args) {
//       var _this = this
//       if (timer) {
//         clearTimeout(timer)
//       }
//       timer = setTimeout(function() {
//         timer = null
//         fn.apply(_this, args)
//       }, time)
//     }
//   }
